.TH OSLAT 8 "August 17, 2020"
# SPDX-License-Identifier: GPL-3.0-only
.\" for manpage-specific macros, see man(7)
.SH NAME
oslat \- OS Latency Detector
.SH SYNOPSIS
.SY oslat
.RI "[ \-shvz ] [ \-b " bucket-size " ] [ \-B " bias " ] [ \-c " cpu-list " ] \
[ \-C " cpu-main-thread " ] [ \-f " rt-prio " ] [ \-\-json " filename " ] \
[ \-m " workload-mem " ] [\-t " runtime " ] [ \-T " trace-threshold " ] \
[ \-w " workload " ] [ \-W " bucket-width " ]"
.SH DESCRIPTION
.B oslat
is an open source userspace polling mode stress program to detect OS level
latency.  The program runs a busy loop with no or various workloads, collecting
TSC information and measuring the time frequently during the process.
.SH OPTIONS
.TP
.B \-b, \-\-bucket-size=N
Specify the number of the buckets (4-1024).
.TP
.B \-B, \-\-bias
Add a bias to all the buckets using the estimated mininum.
.TP
.B \-c, \-\-cpu-list=CPULIST
Specify CPUs to run on.  For example, '1,3,5,7-15'.
.TP
.B \-C, \-\-cpu-main-thread=CORE
Specify which CPU the main thread runs on.  Default is cpu0.
.TP
.B \-f, \-\-rtprio=PRIORITY
Using specific SCHED_FIFO priority (1-99).  Otherwise use the default
priority, normally it will be SCHED_OTHER.
.TP
.B \-\-json=FILENAME
Write final results into FILENAME, JSON formatted.
.TP
.B \-m, \-\-workload-mem=SIZE
Size of the memory to use for the workload (e.g., 4K, 1M).
Total memory usage will be this value multiplies 2*N,
because there will be src/dst buffers for each thread, and
N is the number of processors for testing.
.TP
.B \-D, \-\-duration=TIME
Specify test duration, e.g., 60, 20m, 2H (m/M: minutes, h/H: hours, d/D: days).
By default the unit is s/second.
.TP
.B \-T, \-\-trace-threshold=THRESHOLD
Stop the test when threshold triggered (in USEC).  At the meantime, print a
marker in ftrace and stop ftrace too.
.TP
.B \-w, \-\-workload=WORKLOAD
Specify a kind of workload, default is no workload.  Options: "no", "memmove".
.TP
.B \-s, \-\-single-preheat
Use a single thread when measuring latency at preheat stage
NOTE: please make sure the CPU frequency on all testing cores
are locked before using this parmater.  If you don't know how
to lock the freq then please don't use this parameter.
.TP
.B \-W, \-\-bucket-width
Interval between buckets in nanoseconds

NOTE: Widths not a multiple of 1000 cause ns-precision output
You are responsible for considering the impact of measurement
overhead at the nanosecond scale.
.TP
.B \-h, \-\-help
Show the help message.
.TP
.B \-v, \-\-version
Show the version of the program.
.TP
.B \-z, \-\-zero-omit
Don't display buckets in the output histogram if all zeros.
.SH AUTHOR
.B oslat
was written by Peter Xu <peterx@redhat.com>.
